DockerのImage Layer
Dockerfileの1つ1つの命令がImage Layerに対応する
e.g. RUN, COPY, ADD, etc.
Docker Imageは複数のDockerのImage Layerの積み重ねで構成される
docs-ja
#wip
https://qiita.com/zembutsu/items/24558f9d0d254e33088f#:~:text=%E3%81%93%E3%81%AE%E7%8A%B6%E6%85%8B%E3%81%A7%E3%80%81%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%83%BB%E3%83%AC%E3%82%A4%E3%83%A4%E3%81%AF%E6%A6%82%E5%BF%B5%E7%9A%84%E3%81%AB%E3%81%93%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E9%87%8D%E3%81%AA%E3%82%8A%E3%81%A8%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99
https://docs.docker.com/get-started/docker-concepts/building-images/understanding-image-layers/
https://qiita.com/okmtz/items/f8231c83134a6363647b
GPT-4.icon
Docker Imageを構成するファイルシステムの一部
各レイヤーは読み取り専用の状態で積み重ねられています。
### レイヤーの特徴
積み重ね式
イメージは複数のレイヤーの積み重ねで構成されます。
例えば、あるベースイメージの上に、新しいアプリケーションや依存ライブラリを追加するたびに新しいレイヤーが作成されます。
キャッシュの利用
既存のレイヤーが変更されていない場合、Dockerはキャッシュを使ってビルドプロセスを高速化します。
Dockerのbuild cache
同じレイヤーは何度もダウンロードされたり作成されたりせず、再利用されます。
差分管理
各レイヤーは前のレイヤーとの差分だけを保存しています。
これにより、効率的にストレージを使い、イメージのサイズを小さく抑えることができます。
### イメージとコンテナの関係
イメージ
イメージは読み取り専用のレイヤーの集合体です。
Dockerイメージの各レイヤーは特定のファイルやディレクトリの変更を表しています。
コンテナ
コンテナはイメージに基づいて起動されますが、コンテナでは読み書き可能な「コンテナレイヤー」が追加されます。
コンテナ内での変更(ファイルの作成、削除、更新)はこのレイヤーに保存され、コンテナを削除するとその変更も失われます。